Protracker Module
Wordは16 bit
Module Name (20 bytes)
Samples 31個
Sample Name (22 bytes)
Sample Length (Word): サンプルの長さ in Words。2倍するとBytes(= サンプルフレーム数)になる
Finetune (Byte): $00 - $0F でsignedの4bitとして格納される
Volume (Byte): $00 - $40 で65段階
Loop Start (Word): ループ開始点 in Words。2倍するとBytes(= サンプルフレーム数)になる
Loop Length (Word): ループ長 in Words。2倍するとBytes(= サンプルフレーム数)になる。1の場合ループしない。0にするとクラッシュするらしい
Song length (Byte)
Magic (Byte): Protrackerの場合、 $7F
Song order (128 bytes): Song lengthに関わらず128 bytes。一番大きなPattern indexを探し出して、Patternの数を先読みしておく
Sample tag (4 bytes): Protrackerの場合、 M.K. となる。その他の値については他のリソースを参照
Patterns 先読みしたPatternの数分
4バイトで1セル
それがチャンネルの個数分(普通のProtrackerなら4チャンネル)
それが64行分
形式は、 $ipppjfxy
ij がサンプル番号
ppp がピリオド番号。ノート番号ではないよ
サンプルデータ
8-bit mono。 $00 が下限、 $FF が上限で、 $80 の下駄を履かせてゼロレベルになってそう
前もって読んでおいたサンプルの長さをここで使う